package com.gpframework.module.purchase.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * @ClassName GpPurchaseIncomingInspectVo
 * @Author gpframework
 * @Date 2024-01-09
 * @Version 1.0.0
 * @Description 采购来料检验单Vo对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GpPurchaseIncomingInspectVo {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty("${column.columnComment}")
    private Long id;

    /** 品牌id */
    @Excel(name = "品牌id")
    @ApiModelProperty("品牌id")
    private String brandId;

    /** 品牌名称 */
    @Excel(name = "品牌名称")
    @ApiModelProperty("品牌名称")
    private String brandName;

    /** 缺货报库存申请表id */
    @Excel(name = "缺货报库存申请表id")
    @ApiModelProperty("缺货报库存申请表id")
    private Long productionApplicationId;

    /** 做货明细表id */
    @Excel(name = "做货明细表id")
    @ApiModelProperty("做货明细表id")
    private Long purchasingDetailsId;

    /** 排单表id */
    @Excel(name = "排单表id")
    @ApiModelProperty("排单表id")
    private Long procureSchedulingId;

    /** 到货单id */
    @Excel(name = "到货单id")
    @ApiModelProperty("到货单id")
    private Long purchaseReceiptId;

    /** 订单号 */
    @Excel(name = "订单号")
    @ApiModelProperty("订单号")
    private String sn;

    /** 来料时间 */
    @Excel(name = "来料时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("来料时间")
    private Date incomingTime;

    /** 胚布基础表id */
    @Excel(name = "胚布基础表id")
    @ApiModelProperty("胚布基础表id")
    private Long supplierGreyClothId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    @ApiModelProperty("供应商名称")
    private String supplierName;

    /** 产品基础表id */
    @Excel(name = "产品基础表id")
    @ApiModelProperty("产品基础表id")
    private Long produceProductId;

    /** 产品名 */
    @Excel(name = "产品名")
    @ApiModelProperty("产品名")
    private String productName;

    /** 颜色 */
    @Excel(name = "颜色")
    @ApiModelProperty("颜色")
    private String colour;

    /** 数量（条数） */
    @Excel(name = "数量", readConverterExp = "条=数")
    @ApiModelProperty("数量（条数）")
    private Integer quantity;

    /** 批号 */
    @Excel(name = "批号")
    @ApiModelProperty("批号")
    private String batchNo;

    /** 总码数（空）/公斤数 */
    @Excel(name = "总码数", readConverterExp = "空=")
    @ApiModelProperty("总码数（空）/公斤数")
    private Integer totalQuantity;

    /** 打码规格基础表id */
    @Excel(name = "打码规格基础表id")
    @ApiModelProperty("打码规格基础表id")
    private String codingSpecificationsId;

    /** 打码规格 */
    @Excel(name = "打码规格")
    @ApiModelProperty("打码规格")
    private String codingSpecifications;

    /** 标签规格 */
    @Excel(name = "标签规格")
    @ApiModelProperty("标签规格")
    private String tagSpecifications;

    /** 抽查数量（条） */
    @Excel(name = "抽查数量", readConverterExp = "条=")
    @ApiModelProperty("抽查数量（条）")
    private Integer samplingQuantity;

    /** 纸管 */
    @Excel(name = "纸管")
    @ApiModelProperty("纸管")
    private String paperTube;

    /** 对色情况 */
    @Excel(name = "对色情况")
    @ApiModelProperty("对色情况")
    private String colorContrastSituation;

    /** 检验状态 0未检验， 1已检验 */
    @Excel(name = "检验状态 0未检验， 1已检验")
    @ApiModelProperty("检验状态 0未检验， 1已检验")
    private String status;

    /** 跟单人id */
    @Excel(name = "跟单人id")
    @ApiModelProperty("跟单人id")
    private Long followUpId;

    /** 跟单人名称 */
    @Excel(name = "跟单人名称")
    @ApiModelProperty("跟单人名称")
    private String followUpName;

    /** 跟单时间 */
    @Excel(name = "跟单时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("跟单时间")
    private Date followUpTime;

    /** 操作人id */
    @Excel(name = "操作人id")
    @ApiModelProperty("操作人id")
    private Long operatorId;

    /** 操作人名称 */
    @Excel(name = "操作人名称")
    @ApiModelProperty("操作人名称")
    private String operatorName;

    /** 操作时间 */
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作时间")
    private Date operatorTime;

    /** 排序 */
    @Excel(name = "排序")
    @ApiModelProperty("排序")
    private Integer sort;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /** 创建者 */
    @ApiModelProperty("创建者")
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    @ApiModelProperty("审核人名称")
    private String examineMan;

    /** 操作人编号 */
    @Excel(name = "操作人编号")
    @ApiModelProperty("操作人编号")
    private String operatorNum;

    /** 审批人名称 */
    @Excel(name = "审批人名称")
    @ApiModelProperty("审批人名称")
    private String examinName;

    @Excel(name = "实际验码1", sort = 140)
    @ApiModelProperty("实际验码")
    private Integer yardOne;
    @Excel(name = "实际验码2", sort = 150)
    @ApiModelProperty("实际验码")
    private Integer yardTwo;
    @Excel(name = "实际验码3", sort = 160)
    @ApiModelProperty("实际验码")
    private Integer yardThree;
    @Excel(name = "实际验码4", sort = 170)
    @ApiModelProperty("实际验码")
    private Integer yardFour;
    @Excel(name = "实际验码5", sort = 180)
    @ApiModelProperty("实际验码")
    private Integer yardFive;

    @Excel(name = "开头幅宽米1", sort = 190)
    @ApiModelProperty("开头幅宽米")
    private Integer startWidthOne;
    @Excel(name = "中间幅宽米1", sort = 200)
    @ApiModelProperty("中间幅宽米")
    private Integer middleWidthOne;
    @Excel(name = "结尾幅宽米1", sort = 210)
    @ApiModelProperty("结尾幅宽米")
    private Integer endWidthOne;
    @Excel(name = "开头幅宽米2", sort = 220)
    @ApiModelProperty("开头幅宽米")
    private Integer startWidthTwo;
    @Excel(name = "中间幅宽米2", sort = 230)
    @ApiModelProperty("中间幅宽米")
    private Integer middleWidthTwo;
    @Excel(name = "结尾幅宽米2", sort = 240)
    @ApiModelProperty("结尾幅宽米")
    private Integer endWidthTwo;

    @Excel(name = "重量1", sort = 250)
    @ApiModelProperty("重量")
    private Integer weightOne;
    @Excel(name = "重量2", sort = 260)
    @ApiModelProperty("重量")
    private Integer weightTwo;
    @Excel(name = "重量3", sort = 270)
    @ApiModelProperty("重量")
    private Integer weightThree;
    @Excel(name = "重量4", sort = 280)
    @ApiModelProperty("重量")
    private Integer weightFour;
    @Excel(name = "重量5", sort = 290)
    @ApiModelProperty("重量")
    private Integer weightFive;

    @ApiModelProperty("来料检验单实际验码列表")
    private List<GpPurchaseIncomingInspectYardVerifyVo> yardVerifyList;
    @ApiModelProperty("来料检验单幅宽列表")
    private List<GpPurchaseIncomingInspectWidthVo> widthList;
    @ApiModelProperty("来料检验单重量列表")
    private List<GpPurchaseIncomingInspectWeightVo> weightList;

    /** 列表是否修改字段（前端使用） */
    private Boolean clickEdit = false;

}
